package com.zhaotianhao.serviceproduct.service;

import com.github.pagehelper.PageInfo;
import com.zhaotianhao.serviceproduct.dto.SpuQueryDTO;
import com.zhaotianhao.serviceproduct.entity.SpecParam;
import com.zhaotianhao.serviceproduct.entity.Spu;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zhaotianhao.serviceproduct.vo.SkuDetailVO;
import com.zhaotianhao.serviceproduct.vo.SpecGroupVO;
import com.zhaotianhao.serviceproduct.vo.SpuListVO;

import java.util.LinkedHashMap;
import java.util.List;

/**
 * <p>
 * spu表，该表描述的是一个抽象性的商品，比如 iphone8 服务类
 * </p>
 *
 * @author Z-7
 * @since 2022-04-27
 */
public interface ISpuService extends IService<Spu> {
    /**
     * spu列表的查询
     * @param spuQueryDTO 搜索内容
     * @param pageNum 起始页
     * @param pageSize 偏移量
     * @return
     */
    PageInfo<SpuListVO> getPageInfo(SpuQueryDTO spuQueryDTO, int pageNum, int pageSize);

    /**
     * 单个商品详情
     * @param skuId
     * @return
     */
    SkuDetailVO getSkuBySkuId(long skuId);

    /**
     *
     * @param skuId
     * @return
     */
    SkuDetailVO getSkuDetailVO(Long skuId);

    /**
     * 设置私有属性
     * @param specParams 所有的规格参数
     * @param groupVOSMap json串
     * @return SkuDetailVO对象
     */
    List<SpecGroupVO> setGroupVOS(List<SpecParam> specParams, LinkedHashMap groupVOSMap);
}
